home *** CD-ROM | disk | FTP | other *** search
/ Aminet 2 / Aminet AMIGA CDROM (1994)(Walnut Creek)[Feb 1994][W.O. 44790-1].iso / Aminet / dev / gcc / geninline_920614.lha / inline-2.0 / commodities.h < prev    next >
C/C++ Source or Header  |  1992-06-14  |  11KB  |  383 lines

  1. #ifndef _INLINE_COMMODITIES_H
  2. #define _INLINE_COMMODITIES_H
  3.  
  4. #include <sys/cdefs.h>
  5. #include <inline/stubs.h>
  6.  
  7. __BEGIN_DECLS
  8.  
  9. #ifndef BASE_EXT_DECL
  10. #define BASE_EXT_DECL extern struct CxBase*  CxBase;
  11. #endif
  12. #ifndef BASE_PAR_DECL
  13. #define BASE_PAR_DECL
  14. #define BASE_PAR_DECL0 void
  15. #endif
  16. #ifndef BASE_NAME
  17. #define BASE_NAME CxBase
  18. #endif
  19.  
  20. static __inline LONG 
  21. ActivateCxObj (BASE_PAR_DECL CxObj *co,long true)
  22. {
  23.   BASE_EXT_DECL
  24.   register LONG  _res  __asm("d0");
  25.   register struct CxBase* a6 __asm("a6") = BASE_NAME;
  26.   register CxObj *a0 __asm("a0") = co;
  27.   register long d0 __asm("d0") = true;
  28.   __asm __volatile ("jsr a6@(-0x2a)"
  29.   : "=r" (_res)
  30.   : "r" (a6), "r" (a0), "r" (d0)
  31.   : "a0","a1","d0","d1");
  32.   *(char *)a0 = *(char *)a0;
  33.   return _res;
  34. }
  35. static __inline void 
  36. AddIEvents (BASE_PAR_DECL struct InputEvent *events)
  37. {
  38.   BASE_EXT_DECL
  39.   register struct CxBase* a6 __asm("a6") = BASE_NAME;
  40.   register struct InputEvent *a0 __asm("a0") = events;
  41.   __asm __volatile ("jsr a6@(-0xb4)"
  42.   : /* no output */
  43.   : "r" (a6), "r" (a0)
  44.   : "a0","a1","d0","d1");
  45.   *(char *)a0 = *(char *)a0;
  46. }
  47. static __inline void 
  48. AttachCxObj (BASE_PAR_DECL CxObj *headObj,CxObj *co)
  49. {
  50.   BASE_EXT_DECL
  51.   register struct CxBase* a6 __asm("a6") = BASE_NAME;
  52.   register CxObj *a0 __asm("a0") = headObj;
  53.   register CxObj *a1 __asm("a1") = co;
  54.   __asm __volatile ("jsr a6@(-0x54)"
  55.   : /* no output */
  56.   : "r" (a6), "r" (a0), "r" (a1)
  57.   : "a0","a1","d0","d1");
  58.   *(char *)a0 = *(char *)a0;  *(char *)a1 = *(char *)a1;
  59. }
  60. static __inline void 
  61. ClearCxObjError (BASE_PAR_DECL CxObj *co)
  62. {
  63.   BASE_EXT_DECL
  64.   register struct CxBase* a6 __asm("a6") = BASE_NAME;
  65.   register CxObj *a0 __asm("a0") = co;
  66.   __asm __volatile ("jsr a6@(-0x48)"
  67.   : /* no output */
  68.   : "r" (a6), "r" (a0)
  69.   : "a0","a1","d0","d1");
  70.   *(char *)a0 = *(char *)a0;
  71. }
  72. static __inline CxObj *
  73. CreateCxObj (BASE_PAR_DECL unsigned long type,long arg1,long arg2)
  74. {
  75.   BASE_EXT_DECL
  76.   register CxObj * _res  __asm("d0");
  77.   register struct CxBase* a6 __asm("a6") = BASE_NAME;
  78.   register unsigned long d0 __asm("d0") = type;
  79.   register long a0 __asm("a0") = arg1;
  80.   register long a1 __asm("a1") = arg2;
  81.   __asm __volatile ("jsr a6@(-0x1e)"
  82.   : "=r" (_res)
  83.   : "r" (a6), "r" (d0), "r" (a0), "r" (a1)
  84.   : "a0","a1","d0","d1");
  85.   *(char *)a0 = *(char *)a0;  *(char *)a1 = *(char *)a1;
  86.   return _res;
  87. }
  88. static __inline CxObj *
  89. CxBroker (BASE_PAR_DECL struct NewBroker *nb,LONG *error)
  90. {
  91.   BASE_EXT_DECL
  92.   register CxObj * _res  __asm("d0");
  93.   register struct CxBase* a6 __asm("a6") = BASE_NAME;
  94.   register struct NewBroker *a0 __asm("a0") = nb;
  95.   register LONG *d0 __asm("d0") = error;
  96.   __asm __volatile ("jsr a6@(-0x24)"
  97.   : "=r" (_res)
  98.   : "r" (a6), "r" (a0), "r" (d0)
  99.   : "a0","a1","d0","d1");
  100.   *(char *)a0 = *(char *)a0;
  101.   return _res;
  102. }
  103. static __inline APTR 
  104. CxMsgData (BASE_PAR_DECL CxMsg *cxm)
  105. {
  106.   BASE_EXT_DECL
  107.   register APTR  _res  __asm("d0");
  108.   register struct CxBase* a6 __asm("a6") = BASE_NAME;
  109.   register CxMsg *a0 __asm("a0") = cxm;
  110.   __asm __volatile ("jsr a6@(-0x90)"
  111.   : "=r" (_res)
  112.   : "r" (a6), "r" (a0)
  113.   : "a0","a1","d0","d1");
  114.   *(char *)a0 = *(char *)a0;
  115.   return _res;
  116. }
  117. static __inline LONG 
  118. CxMsgID (BASE_PAR_DECL CxMsg *cxm)
  119. {
  120.   BASE_EXT_DECL
  121.   register LONG  _res  __asm("d0");
  122.   register struct CxBase* a6 __asm("a6") = BASE_NAME;
  123.   register CxMsg *a0 __asm("a0") = cxm;
  124.   __asm __volatile ("jsr a6@(-0x96)"
  125.   : "=r" (_res)
  126.   : "r" (a6), "r" (a0)
  127.   : "a0","a1","d0","d1");
  128.   *(char *)a0 = *(char *)a0;
  129.   return _res;
  130. }
  131. static __inline ULONG 
  132. CxMsgType (BASE_PAR_DECL CxMsg *cxm)
  133. {
  134.   BASE_EXT_DECL
  135.   register ULONG  _res  __asm("d0");
  136.   register struct CxBase* a6 __asm("a6") = BASE_NAME;
  137.   register CxMsg *a0 __asm("a0") = cxm;
  138.   __asm __volatile ("jsr a6@(-0x8a)"
  139.   : "=r" (_res)
  140.   : "r" (a6), "r" (a0)
  141.   : "a0","a1","d0","d1");
  142.   *(char *)a0 = *(char *)a0;
  143.   return _res;
  144. }
  145. static __inline LONG 
  146. CxObjError (BASE_PAR_DECL CxObj *co)
  147. {
  148.   BASE_EXT_DECL
  149.   register LONG  _res  __asm("d0");
  150.   register struct CxBase* a6 __asm("a6") = BASE_NAME;
  151.   register CxObj *a0 __asm("a0") = co;
  152.   __asm __volatile ("jsr a6@(-0x42)"
  153.   : "=r" (_res)
  154.   : "r" (a6), "r" (a0)
  155.   : "a0","a1","d0","d1");
  156.   *(char *)a0 = *(char *)a0;
  157.   return _res;
  158. }
  159. static __inline ULONG 
  160. CxObjType (BASE_PAR_DECL CxObj *co)
  161. {
  162.   BASE_EXT_DECL
  163.   register ULONG  _res  __asm("d0");
  164.   register struct CxBase* a6 __asm("a6") = BASE_NAME;
  165.   register CxObj *a0 __asm("a0") = co;
  166.   __asm __volatile ("jsr a6@(-0x3c)"
  167.   : "=r" (_res)
  168.   : "r" (a6), "r" (a0)
  169.   : "a0","a1","d0","d1");
  170.   *(char *)a0 = *(char *)a0;
  171.   return _res;
  172. }
  173. static __inline void 
  174. DeleteCxObj (BASE_PAR_DECL CxObj *co)
  175. {
  176.   BASE_EXT_DECL
  177.   register struct CxBase* a6 __asm("a6") = BASE_NAME;
  178.   register CxObj *a0 __asm("a0") = co;
  179.   __asm __volatile ("jsr a6@(-0x30)"
  180.   : /* no output */
  181.   : "r" (a6), "r" (a0)
  182.   : "a0","a1","d0","d1");
  183.   *(char *)a0 = *(char *)a0;
  184. }
  185. static __inline void 
  186. DeleteCxObjAll (BASE_PAR_DECL CxObj *co)
  187. {
  188.   BASE_EXT_DECL
  189.   register struct CxBase* a6 __asm("a6") = BASE_NAME;
  190.   register CxObj *a0 __asm("a0") = co;
  191.   __asm __volatile ("jsr a6@(-0x36)"
  192.   : /* no output */
  193.   : "r" (a6), "r" (a0)
  194.   : "a0","a1","d0","d1");
  195.   *(char *)a0 = *(char *)a0;
  196. }
  197. static __inline void 
  198. DisposeCxMsg (BASE_PAR_DECL CxMsg *cxm)
  199. {
  200.   BASE_EXT_DECL
  201.   register struct CxBase* a6 __asm("a6") = BASE_NAME;
  202.   register CxMsg *a0 __asm("a0") = cxm;
  203.   __asm __volatile ("jsr a6@(-0xa8)"
  204.   : /* no output */
  205.   : "r" (a6), "r" (a0)
  206.   : "a0","a1","d0","d1");
  207.   *(char *)a0 = *(char *)a0;
  208. }
  209. static __inline void 
  210. DivertCxMsg (BASE_PAR_DECL CxMsg *cxm,CxObj *headObj,CxObj *returnObj)
  211. {
  212.   BASE_EXT_DECL
  213.   register struct CxBase* a6 __asm("a6") = BASE_NAME;
  214.   register CxMsg *a0 __asm("a0") = cxm;
  215.   register CxObj *a1 __asm("a1") = headObj;
  216.   register CxObj *a2 __asm("a2") = returnObj;
  217.   __asm __volatile ("jsr a6@(-0x9c)"
  218.   : /* no output */
  219.   : "r" (a6), "r" (a0), "r" (a1), "r" (a2)
  220.   : "a0","a1","a2","d0","d1");
  221.   *(char *)a0 = *(char *)a0;  *(char *)a1 = *(char *)a1;  *(char *)a2 = *(char *)a2;
  222. }
  223. static __inline void 
  224. EnqueueCxObj (BASE_PAR_DECL CxObj *headObj,CxObj *co)
  225. {
  226.   BASE_EXT_DECL
  227.   register struct CxBase* a6 __asm("a6") = BASE_NAME;
  228.   register CxObj *a0 __asm("a0") = headObj;
  229.   register CxObj *a1 __asm("a1") = co;
  230.   __asm __volatile ("jsr a6@(-0x5a)"
  231.   : /* no output */
  232.   : "r" (a6), "r" (a0), "r" (a1)
  233.   : "a0","a1","d0","d1");
  234.   *(char *)a0 = *(char *)a0;  *(char *)a1 = *(char *)a1;
  235. }
  236. static __inline void 
  237. InsertCxObj (BASE_PAR_DECL CxObj *headObj,CxObj *co,CxObj *pred)
  238. {
  239.   BASE_EXT_DECL
  240.   register struct CxBase* a6 __asm("a6") = BASE_NAME;
  241.   register CxObj *a0 __asm("a0") = headObj;
  242.   register CxObj *a1 __asm("a1") = co;
  243.   register CxObj *a2 __asm("a2") = pred;
  244.   __asm __volatile ("jsr a6@(-0x60)"
  245.   : /* no output */
  246.   : "r" (a6), "r" (a0), "r" (a1), "r" (a2)
  247.   : "a0","a1","a2","d0","d1");
  248.   *(char *)a0 = *(char *)a0;  *(char *)a1 = *(char *)a1;  *(char *)a2 = *(char *)a2;
  249. }
  250. static __inline BOOL 
  251. InvertKeyMap (BASE_PAR_DECL unsigned long ansiCode,struct InputEvent *event,struct KeyMap *km)
  252. {
  253.   BASE_EXT_DECL
  254.   register BOOL  _res  __asm("d0");
  255.   register struct CxBase* a6 __asm("a6") = BASE_NAME;
  256.   register unsigned long d0 __asm("d0") = ansiCode;
  257.   register struct InputEvent *a0 __asm("a0") = event;
  258.   register struct KeyMap *a1 __asm("a1") = km;
  259.   __asm __volatile ("jsr a6@(-0xae)"
  260.   : "=r" (_res)
  261.   : "r" (a6), "r" (d0), "r" (a0), "r" (a1)
  262.   : "a0","a1","d0","d1");
  263.   *(char *)a0 = *(char *)a0;  *(char *)a1 = *(char *)a1;
  264.   return _res;
  265. }
  266. static __inline BOOL 
  267. MatchIX (BASE_PAR_DECL struct InputEvent *event,IX *ix)
  268. {
  269.   BASE_EXT_DECL
  270.   register BOOL  _res  __asm("d0");
  271.   register struct CxBase* a6 __asm("a6") = BASE_NAME;
  272.   register struct InputEvent *a0 __asm("a0") = event;
  273.   register IX *a1 __asm("a1") = ix;
  274.   __asm __volatile ("jsr a6@(-0xcc)"
  275.   : "=r" (_res)
  276.   : "r" (a6), "r" (a0), "r" (a1)
  277.   : "a0","a1","d0","d1");
  278.   *(char *)a0 = *(char *)a0;  *(char *)a1 = *(char *)a1;
  279.   return _res;
  280. }
  281. static __inline LONG 
  282. ParseIX (BASE_PAR_DECL STRPTR description,IX *ix)
  283. {
  284.   BASE_EXT_DECL
  285.   register LONG  _res  __asm("d0");
  286.   register struct CxBase* a6 __asm("a6") = BASE_NAME;
  287.   register STRPTR a0 __asm("a0") = description;
  288.   register IX *a1 __asm("a1") = ix;
  289.   __asm __volatile ("jsr a6@(-0x84)"
  290.   : "=r" (_res)
  291.   : "r" (a6), "r" (a0), "r" (a1)
  292.   : "a0","a1","d0","d1");
  293.   *(char *)a0 = *(char *)a0;  *(char *)a1 = *(char *)a1;
  294.   return _res;
  295. }
  296. static __inline void 
  297. RemoveCxObj (BASE_PAR_DECL CxObj *co)
  298. {
  299.   BASE_EXT_DECL
  300.   register struct CxBase* a6 __asm("a6") = BASE_NAME;
  301.   register CxObj *a0 __asm("a0") = co;
  302.   __asm __volatile ("jsr a6@(-0x66)"
  303.   : /* no output */
  304.   : "r" (a6), "r" (a0)
  305.   : "a0","a1","d0","d1");
  306.   *(char *)a0 = *(char *)a0;
  307. }
  308. static __inline void 
  309. RouteCxMsg (BASE_PAR_DECL CxMsg *cxm,CxObj *co)
  310. {
  311.   BASE_EXT_DECL
  312.   register struct CxBase* a6 __asm("a6") = BASE_NAME;
  313.   register CxMsg *a0 __asm("a0") = cxm;
  314.   register CxObj *a1 __asm("a1") = co;
  315.   __asm __volatile ("jsr a6@(-0xa2)"
  316.   : /* no output */
  317.   : "r" (a6), "r" (a0), "r" (a1)
  318.   : "a0","a1","d0","d1");
  319.   *(char *)a0 = *(char *)a0;  *(char *)a1 = *(char *)a1;
  320. }
  321. static __inline LONG 
  322. SetCxObjPri (BASE_PAR_DECL CxObj *co,long pri)
  323. {
  324.   BASE_EXT_DECL
  325.   register LONG  _res  __asm("d0");
  326.   register struct CxBase* a6 __asm("a6") = BASE_NAME;
  327.   register CxObj *a0 __asm("a0") = co;
  328.   register long d0 __asm("d0") = pri;
  329.   __asm __volatile ("jsr a6@(-0x4e)"
  330.   : "=r" (_res)
  331.   : "r" (a6), "r" (a0), "r" (d0)
  332.   : "a0","a1","d0","d1");
  333.   *(char *)a0 = *(char *)a0;
  334.   return _res;
  335. }
  336. static __inline void 
  337. SetFilter (BASE_PAR_DECL CxObj *filter,STRPTR text)
  338. {
  339.   BASE_EXT_DECL
  340.   register struct CxBase* a6 __asm("a6") = BASE_NAME;
  341.   register CxObj *a0 __asm("a0") = filter;
  342.   register STRPTR a1 __asm("a1") = text;
  343.   __asm __volatile ("jsr a6@(-0x78)"
  344.   : /* no output */
  345.   : "r" (a6), "r" (a0), "r" (a1)
  346.   : "a0","a1","d0","d1");
  347.   *(char *)a0 = *(char *)a0;  *(char *)a1 = *(char *)a1;
  348. }
  349. static __inline void 
  350. SetFilterIX (BASE_PAR_DECL CxObj *filter,IX *ix)
  351. {
  352.   BASE_EXT_DECL
  353.   register struct CxBase* a6 __asm("a6") = BASE_NAME;
  354.   register CxObj *a0 __asm("a0") = filter;
  355.   register IX *a1 __asm("a1") = ix;
  356.   __asm __volatile ("jsr a6@(-0x7e)"
  357.   : /* no output */
  358.   : "r" (a6), "r" (a0), "r" (a1)
  359.   : "a0","a1","d0","d1");
  360.   *(char *)a0 = *(char *)a0;  *(char *)a1 = *(char *)a1;
  361. }
  362. static __inline void 
  363. SetTranslate (BASE_PAR_DECL CxObj *translator,struct InputEvent *events)
  364. {
  365.   BASE_EXT_DECL
  366.   register struct CxBase* a6 __asm("a6") = BASE_NAME;
  367.   register CxObj *a0 __asm("a0") = translator;
  368.   register struct InputEvent *a1 __asm("a1") = events;
  369.   __asm __volatile ("jsr a6@(-0x72)"
  370.   : /* no output */
  371.   : "r" (a6), "r" (a0), "r" (a1)
  372.   : "a0","a1","d0","d1");
  373.   *(char *)a0 = *(char *)a0;  *(char *)a1 = *(char *)a1;
  374. }
  375. #undef BASE_EXT_DECL
  376. #undef BASE_PAR_DECL
  377. #undef BASE_PAR_DECL0
  378. #undef BASE_NAME
  379.  
  380. __END_DECLS
  381.  
  382. #endif /* _INLINE_COMMODITIES_H */
  383.